/*
 	This file is part of ExportGnuCash.

    ExportGnuCash is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    ExportGnuCash is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with ExportGnuCash.  If not, see <http://www.gnu.org/licenses/>.
 */
package net.sourceforge.gnucash.outputformat;

import java.io.IOException;
import java.io.Writer;

import javax.swing.filechooser.FileFilter;

import net.sourceforge.gnucash.model.GnuCashBook;

/**
 * Interface that output file formats implement
 */
public interface OutputFormat
{
	/**
	 * Write out a file format to the given writer using the input account Map
	 * @param conversion The conversion configuration to use
	 * @param writer The writer to output the converted data to
	 */
    public void export(GnuCashBook book, Writer writer) throws IOException;
    
    /**
     * Returns this output format's FileFilter
     * @return This output format's FileFilter
     */
    public FileFilter getFileFilter();
}
